# Copyright (c) 2025, 大连理工大学 (Dalian University of Technology)
#
# Licensed under the Mulan PSL v2.
# You can use this file according to the terms and conditions of the Mulan PSL v2.
# You may obtain a copy of the License at
#
#     http://license.coscl.org.cn/MulanPSL2
#
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. SEE THE MULAN PSL v2
# FOR MORE DETAILS.

cmake_minimum_required(VERSION 3.20)

set(CMAKE_CXX_STANDARD 17)

project(Import LANGUAGES CXX)



# 获取.cpp文件


  add_library(${PROJECT_NAME} SHARED 
      ImportAPI.cpp
  )

# 链接库
target_link_libraries(
  ${PROJECT_NAME}
  PRIVATE Algebra
  PRIVATE Exception
  PRIVATE Configuration
  PRIVATE FileSystem
  PRIVATE Logging
  PRIVATE Stacktrace

  PRIVATE DataStructure
  PRIVATE DBManager
)
target_link_libraries(
  ${PROJECT_NAME} PRIVATE
  -Wl,--whole-archive # 开始整个静态库
  BDFImport # 链接静态库
  -Wl,--no-whole-archive # 结束整个静态库
)
# 导入Boost库
# import_boost()

# 指定字符集编码
target_compile_options(${PROJECT_NAME} PRIVATE -finput-charset=UTF-8
                                               -fexec-charset=UTF-8)

# 预定义宏
target_compile_definitions(${PROJECT_NAME} PRIVATE EXPORTING_IMPORT)

# 安装设置
install(
  TARGETS ${PROJECT_NAME}
  ARCHIVE DESTINATION lib
  RUNTIME DESTINATION bin)



# Header files install
install(
  DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
  DESTINATION include/Import
  FILES_MATCHING
  PATTERN "*.h"
  PATTERN "UnitTest" EXCLUDE)

# 测试
if(SG_BUILD_UNIT_TEST)
  add_subdirectory(UnitTest)
endif()
